package com.example.makerspace.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.example.makerspace.domain.DemandDO;
import com.example.makerspace.domain.PersonalRecommendationsDO;
import com.example.makerspace.mapper.MybatisListHandler;
import com.example.makerspace.mapper.ProductAttributeHandler;
import com.example.makerspace.model.ProductAttribute;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductRecommendationVO {
   private  Integer id;
   private Date createTime;
   private Date modifyTime;
   @ApiModelProperty(value = "产品名称", required = true)
   @Field(name = "demand_name", type = FieldType.Text, analyzer="ik_max_word")
   private String demandName;
   @ApiModelProperty(value = "分类", required = true)
   @Field(name = "category", type = FieldType.Text, analyzer="ik_max_word")
   private String category;
   @ApiModelProperty(value = "关键词", required = true)
   @Field(name = "keyword", type = FieldType.Text, analyzer="ik_max_word")
   @TableField(typeHandler = MybatisListHandler.class)
   private List<String> keyword;
   @ApiModelProperty(value = "需求描述", required = true)
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name = "demand_desc", type = FieldType.Text, analyzer="ik_max_word")
   private List<String> demandDesc;
   @ApiModelProperty(value = "图片", required = true)
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name = "picture", type = FieldType.Text, analyzer="ik_max_word")
   private List<String> picture;
   @ApiModelProperty(value = "审核状态", required = true)
   @Field(name = "is_show", type = FieldType.Text, analyzer="ik_max_word")
   private Integer  isShow;;
   @ApiModelProperty(value = "产品概述", required = true)
   @Field(name="product_overview",type = FieldType.Text, analyzer="ik_max_word")
   private  String productOverview;
   @ApiModelProperty(value = "产品优势", required = true)
   @Field(name="product_advantages",type = FieldType.Text, analyzer="ik_max_word")
   private  String productAdvantages;
   @ApiModelProperty(value = "公司信息", required = true)
   @Field(name="company_information",type = FieldType.Text, analyzer="ik_max_word")
   private  String companyInformation;
   @ApiModelProperty(value = "公司地址", required = true)
   @Field(name="company_address",type = FieldType.Text, analyzer="ik_max_word")
   private  String companyAddress;
   @ApiModelProperty(value = "公司名", required = true)
   @Field(name="company_name",type = FieldType.Text, analyzer="ik_max_word")
   private  String companyName;
   @ApiModelProperty(value = "用户名", required = true)
   @Field(name="username",type = FieldType.Text, analyzer="ik_max_word")
   private  String username;
   @ApiModelProperty(value = "成果介绍", required = true)
   @Field(name="achievement_decs",type = FieldType.Text, analyzer="ik_max_word")
   private  String achievementDecs;
   @ApiModelProperty(value = "公司资质", required = true)
   @Field(name="company_qualifications",type = FieldType.Text, analyzer="ik_max_word")
   private  String companyQualifications;
   @ApiModelProperty(value = "应用案例", required = true)
   @Field(name="application_examples",type = FieldType.Text, analyzer="ik_max_word")
   private  String applicationExamples;
   @ApiModelProperty(value = "成果信息", required = true)
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name="outcome_information",type = FieldType.Text, analyzer="ik_max_word")
   private List<String> outcomeInformation;
   @ApiModelProperty(value = "产品视频", required = true)
   @Field(name="product_videos",type = FieldType.Text, analyzer="ik_max_word")
   private String  productVideos;
   @ApiModelProperty(value = "点赞人", required = true)
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name="praise_user",type = FieldType.Text, analyzer="ik_max_word")
   private  List<String> praiseUser;
   @ApiModelProperty(value = "点赞数", required = true)
   @Field(name="praise",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer praise;
   @ApiModelProperty(value = "收藏数", required = true)
   @Field(name="collection",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer collection;
   @ApiModelProperty(value = "收藏人", required = true)
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name="collection_user",type = FieldType.Text, analyzer="ik_max_word")
   private  List<String> collectionUser;
   @ApiModelProperty(value = "产品属性", required = true)
   @TableField(typeHandler = ProductAttributeHandler.class)
   @Field(name="product_attribute",type = FieldType.Text, analyzer="ik_max_word")
   private List<ProductAttribute> productAttribute;
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name="attachment",type = FieldType.Text, analyzer="ik_max_word")
   private  List<String> attachment;
   @Field(name="is_public",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer isPublic;
   @Field(name="is_read",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer isRead;
   @Field(name="feedback",type = FieldType.Text, analyzer="ik_max_word")
   private  String feedback;
   @Field(name="share_numbers",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer shareNumbers;
   @Field(name="show_number",type = FieldType.Text, analyzer="ik_max_word")
   private  Integer showNumber;
   @TableField(typeHandler = MybatisListHandler.class)
   @Field(name="share_user",type = FieldType.Text, analyzer="ik_max_word")
   private  List<String>  shareUser;
   private  String serialNumber;
}
